/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica.Core;

import Logica.Controladoras.ControladoraLogica;
import Logica.Controladoras.Movimientos.ControladoraLogicaMovimiento;
import Logica.Controladoras.Plantaciones.ControladoraLogicaPlantaciones;
import Logica.Core.MateriaPrima.Yerba;
import Logica.Core.Movimientos.LibroEntradas;
import Logica.Core.Movimientos.LibroSalidas;
import Logica.Core.Plantaciones.Plantacion;
import Logica.Core.Producto.Producto;
import Logica.Core.Producto.YerbaCanchada;
import java.util.List;

/**
 *
 * @author Luciano
 */
public class Empresa {

    protected ControladoraLogica miLogica;
    protected ControladoraLogicaMovimiento miLogicaMovimientos;
    protected ControladoraLogicaPlantaciones miLogicaPlantaciones;

    public Empresa() {
        miLogica = new ControladoraLogica();
        miLogicaMovimientos = miLogica.getMiLogicaMovimiento();
        miLogicaPlantaciones = miLogica.getMiLogicaPlantaciones();
    }

    public double calcularDensidadPlantacion(Plantacion unaPlantacion) {
        double area = unaPlantacion.getArea(), kilaje = 0;
        List<LibroEntradas> misEntradas = miLogicaMovimientos.dameMiLibroEntradas();

        for (int i = 0; i < misEntradas.size(); i++) {
            LibroEntradas unaEntrada = misEntradas.get(i);

            kilaje += unaEntrada.getMiMateriaPrima().getKilaje();
        }
        return kilaje / area;
    }

    public double calcularDensidadSecadero() {
        double totalVerde = 0, totalCanchada = 0;
        List<LibroEntradas> misEntradas = miLogicaMovimientos.dameMiLibroEntradas();
        List<LibroSalidas> misSalidas = miLogicaMovimientos.dameMisLibrosSalidas();

        for (int i = 0; i < misEntradas.size(); i++) {
            LibroEntradas libroEntradas = misEntradas.get(i);

            if (libroEntradas.getMiMateriaPrima().getClass().equals(Yerba.class)) {
                totalVerde += libroEntradas.getMiMateriaPrima().getKilaje();
            }
        }

        for (int i = 0; i < misSalidas.size(); i++) {
            LibroSalidas libroSalidas = misSalidas.get(i);

            List<Producto> misProductos = libroSalidas.getMisProductos();
            
            for (int j = 0; j < misProductos.size(); j++) {
                Producto producto = misProductos.get(j);
                if(producto.getClass().equals(YerbaCanchada.class)){
                    totalCanchada += producto.getPeso();
                }
                
            }
            
        }


        return totalVerde / totalCanchada;
    }
}
